export class Popup {
  /**
   * 提示框，默认显示2000ms
   * @param text 提示文字，
   * @param type 可不填，true为成功提示，空或false为失败提示
   */
  public toast(text: string | any, type = false) {
    if (text) {
      uni.showToast({
        title: String(text),
        icon: type ? 'success' : 'none',
      })
    }
  }

  /**
   * 模态弹窗，显示确认和取消按钮
   * @param title 提示标题，
   * @param content 提示内容，
   * @returns  Promise 使用.then({})表示确定操作.catch({})表示取消操作
   */
  public modal({ title, content }: { title: string; content: string }) {
    return new Promise<void>((resolve, reject) => {
      uni.showModal({
        title,
        content,
        success: (res) => {
          res.confirm ? resolve() : reject()
        },
        fail: (err) => {
          reject(err)
        },
      })
    })
  }

  /**
   * 模态弹窗，只显示确认按钮
   * @param title 提示标题，
   * @param content 提示内容，
   * @returns  Promise 使用.then({})表示确定操作
   */
  public alert({ title, content }: { title: string; content: string }) {
    return new Promise<void>((resolve) => {
      uni.showModal({
        title,
        content,
        showCancel: false,
        success: () => {
          resolve()
        },
        fail: (err) => {
          console.log('alert模态弹窗报错：', err)
        },
      })
    })
  }
}
